home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 123 / 123.d81 / scale simulator (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  2KB  |  90 lines

  1. 5 poke53281,0:poke53280,0:print"[147][159]"chr$(142)
  2. 10 rem initialize
  3. 15 a=1:b=1:c=1:d=1:e=1:f=1:g=1:h=1:i=1:j=1:k=1:l=1:ls=0:rs=0:ct=0:dimp(8)
  4. 20 print"[147]enter odd unit (a-l): ";:inputa$
  5. 25 ifa$<"a"ora$>"l"then20
  6. 30 print"enter (l)ight or (h)eavy: ";:inputw$
  7. 35 ifw$<>"l"andw$<>"h"then30
  8. 40 print"[147]";:w=2:ifw$="l"thenw=0
  9. 45 onasc(a$)-64goto51,52,53,54,55,56,57,58,59,60,61,62
  10. 46 stop
  11. 51 a=w:goto65
  12. 52 b=w:goto65
  13. 53 c=w:goto65
  14. 54 d=w:goto65
  15. 55 e=w:goto65
  16. 56 f=w:goto65
  17. 57 g=w:goto65
  18. 58 h=w:goto65
  19. 59 i=w:goto65
  20. 60 j=w:goto65
  21. 61 k=w:goto65
  22. 62 l=w
  23. 65 goto200:rem jump to start
  24. 100 rem weighing subroutine
  25. 105 ls=0:rs=0:forz=1to4:ls=ls+p(z):rs=rs+p(z+4):p(z)=0:p(z+4)=0:next
  26. 110 bal=0:rem in balance
  27. 115 ifls<rsthenbal=1:rem left side is up
  28. 120 ifls>rsthenbal=-1:rem left side is down
  29. 125 ct=ct+1:print"weighing #";ct;"  ";x$
  30. 130 ifbal=othenprint"balanced"
  31. 135 ifbal=1thenprint"left side up"
  32. 140 ifbal=-1thenprint"left side down"
  33. 145 print"";:return
  34. 200 p(1)=a:p(2)=b:p(3)=c:p(4)=d
  35. 205 p(5)=e:p(6)=f:p(7)=g:p(8)=h
  36. 210 x$="abcd efgh"
  37. 215 gosub100:b1=bal
  38. 220 ifbal<>0then400
  39. 225 p(1)=a:p(2)=b:p(3)=c:p(5)=i:p(6)=j:p(7)=k:x$="abc- ijk-"
  40. 230 gosub100:b2=bal
  41. 235 ifbal<>0then300
  42. 240 p(1)=a:p(5)=l:x$="a--- l---"
  43. 245 gosub100:b3=bal
  44. 250 ifb3=-1thenprint"l is light"
  45. 255 ifb3=1thenprint"l is heavy"
  46. 260 goto1000:rem end
  47. 300 p(1)=i:p(5)=j:x$="i--- j---"
  48. 305 gosub100:b3=bal
  49. 310 ifb3=0andb2=1thenprint"k is heavy"
  50. 315 ifb3=0andb2=-1thenprint"k is light"
  51. 320 ifb2=-1andb3=1thenprint"i is light"
  52. 325 ifb2=1andb3=-1thenprint"i is heavy"
  53. 330 ifb2=-1andb3=-1thenprint"j is light"
  54. 335 ifb2=1andb3=1thenprint"j is heavy"
  55. 340 goto1000:rem end
  56. 400 p(1)=d:p(2)=e:p(3)=f:p(5)=g:p(6)=h:p(7)=i:x$="def- ghi-"
  57. 405 gosub100:b2=bal
  58. 410 ifb2<>0then500
  59. 415 p(1)=a:p(5)=b:x$="a--- b---"
  60. 420 gosub100:b3=bal
  61. 425 ifb3=0andb1=1thenprint"c is light"
  62. 430 ifb3=0andb1=-1thenprint"c is heavy"
  63. 435 ifb3=1andb1=1thenprint"a is light"
  64. 440 ifb3=1andb1=-1thenprint"b is heavy"
  65. 445 ifb3=-1andb1=1thenprint"b is light"
  66. 450 ifb3=-1andb1=-1thenprint"a is heavy"
  67. 455 goto1000:rem end
  68. 500 ifb1=b2then600
  69. 505 p(1)=e:p(5)=f:x$="e--- f---"
  70. 510 gosub100:b3=bal
  71. 515 ifb3=1andb2=1andb1=-1thenprint"e is light"
  72. 520 ifb3=-1andb2=-1andb1=1thenprint"e is heavy"
  73. 525 ifb3=1andb2=-1andb1=1thenprint"f is heavy"
  74. 530 ifb3=-1andb2=1andb1=-1thenprint"f is light"
  75. 535 goto1000:rem end
  76. 600 p(1)=g:p(5)=h:x$="g--- h---"
  77. 605 gosub100:b3=bal
  78. 610 ifb3=0andb2=1thenprint"d is light"
  79. 615 ifb3=0andb2=-1thenprint"d is heavy"
  80. 620 ifb3=1andb2=1thenprint"h is heavy"
  81. 625 ifb3=1andb2=-1thenprint"g is light"
  82. 630 ifb3=-1andb2=1thenprint"g is heavy"
  83. 635 ifb3=-1andb2=-1thenprint"h is light"
  84. 640 goto1000:rem end
  85. 1000 print"again? (y/n)"
  86. 1005 geta$:ifa$="y"thenrun
  87. 1010 ifa$<>"n"then1005
  88. 1015 end
  89. 10000 open15,8,15,"s0:scale simulator":close15:save"scale simulator",8:end
  90.